using System;
using CPlatePrintSys.Annotation.Models;
using Prism.Events;

namespace CPlatePrintSys.Annotation.Events
{
    /// <summary>
    /// 镜像同步事件参数
    /// </summary>
    public class MirrorSyncEventArgs : EventArgs
    {
        /// <summary>
        /// 源控件ID
        /// </summary>
        public string SourceControlId { get; set; }
        
        /// <summary>
        /// 目标控件ID
        /// </summary>
        public string TargetControlId { get; set; }
        
        /// <summary>
        /// 操作类型
        /// </summary>
        public MirrorSyncOperation Operation { get; set; }
        
        /// <summary>
        /// 实体信息
        /// </summary>
        public TextInfoSync TextInfo { get; set; }
        
        /// <summary>
        /// 实体ID
        /// </summary>
        public string EntityId { get; set; }
    }
    
    /// <summary>
    /// 镜像同步操作类型
    /// </summary>
    public enum MirrorSyncOperation
    {
        /// <summary>
        /// 添加实体
        /// </summary>
        Add,
        
        /// <summary>
        /// 编辑实体
        /// </summary>
        Edit,
        
        /// <summary>
        /// 删除实体
        /// </summary>
        Delete,
        
        /// <summary>
        /// 移动实体
        /// </summary>
        Move,
        
        /// <summary>
        /// 旋转实体
        /// </summary>
        Rotate,
        
        /// <summary>
        /// 调整大小
        /// </summary>
        Resize,
        
        /// <summary>
        /// 错误恢复
        /// </summary>
        Error
    }

    /// <summary>
    /// 镜像同步事件
    /// </summary>
    public class MirrorSyncEvent : PubSubEvent<MirrorSyncEventArgs>
    {
    }
}
